#pragma once

//

class VlareDelegate :
	//public std::map<const char*, DynamicData>,
	public DynamicData ///<todo
{
	VlareHashMap upvalues;
public:
	VlareDelegate(void);
	~VlareDelegate(void);

	DynamicData& operator[](const char* const i);
	const DynamicData& operator[](const char* const i) const;

	void set(const DynamicData&);
	void set_Func(const VlareFunction&);
	const DynamicData& get();
	const VlareFunction& get_Func();
	DynamicData call(const VlareHashMap& params);


	DynamicData& operator()(DynamicData ...);	///<set
	const DynamicData& operator()(DynamicData ...) const; ///<get

};
